package org.m8.auth.handler;

import org.m8.auth.controller.vo.AuthLoginRespVO;

import java.util.Map;

/**
 *
 * 登录抽象接口
 */
public interface AuthLoginHandler {


    /**
     * 登录
     *
     * @param req 登录请求参数
     * @return 登录结果
     */
    <R extends AuthLoginRespVO> R login(Map<String, Object> req);

    /**
     * 登出
     *
     * @param accessToken 访问令牌
     */
    void logout(String accessToken);

    /**
     * 刷新令牌
     *
     * @param refreshToken 刷新令牌
     * @return 登录结果
     */
    <V extends AuthLoginRespVO> V refreshToken(String refreshToken);
}
